import sun.security.mscapi.CPublicKey;

import java.util.Scanner;



public class Main {
//    求最大值方法的重载 在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，还可以求3个小数的最大值？
    public static double max(int a,int b){

        return Math.max(a,b);
    }
    public static double max(int a,int b,int c){
        int max1=Math.max(a,b);
        return Math.max(max1,c);
    }
    public static void main(String[] args) {
        System.out.println(max(21, 13, 2));
        System.out.println(max(3, 2));
        System.out.println(max(3, 13, 2));
        System.out.println(max(232, 2));
    }
//    求和的重载 在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
    public static double sum(int a,int b){
        return a+b;
    }
    public static double sum(int a,int b,int c){
        return a+b+c;
    }
    public static void main7(String[] args) {
        System.out.println(sum(1, 2, 3));
        System.out.println(sum(1, 2));
    }
//    求斐波那契数列的第n项。(迭代实现)
    public static int fib(int n){
        int f1=1;
        int f2=1;
        int f3=0;
        if (n==1||n==2){
            return 1;
        }
        for(int i=2;i<n;i++){
            f3=f2+f1;
            f1=f2;
            f2=f3;
        }
        return f3;
    }
    public static void main6(String[] args) {
        System.out.println(fib(8));

    }
//    创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
//     要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算
    public static int max2(int a,int b){
        return a>b?a:b;
    }
    public static int max3(int a,int b,int c){
        int max=max2(a,b);
        return max>c?max:c;
    }
    public static void main5(String[] args) {
        System.out.println(max2(6, 8));
        System.out.println(max2(90, 12));
        System.out.println(max3(1, 2, 3));
        System.out.println(max3(3, 2, 43));
    }
//    编写代码模拟三次密码输入的场景。 最多能输入三次密码，密码正确，提示“登录成功”,
//    密码错误， 可以重新输 入，最多输入三次。三次均错，则提示退出程序
    public static void main4(String[] args) {
        int count=3;
        while(count!=0){
            Scanner scanner=new Scanner(System.in);
            String password=scanner.nextLine();
            if (password.equals("123")){
                System.out.println("密码正确");
                break;
            }else {
                count--;
                System.out.println("登入错误，还有"+count+"次机会");
            }
        }
    }
//    输出一个整数的每一位，如：123的每一位是3，2，1
    public static void main3(String[] args) {
        int number=123;
        while(number!=0){
            System.out.println(number%10);
            number=number/10;
        }

    }

//    计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值    。
    public static void main2(String[] args) {
        double sum=0;
        int flag=1;
        for(int i=1;i<=100;i++){
            sum+=1.0/i*flag;
            flag=-flag;
        }
        System.out.println(sum);
    }
//    打印 X 图形
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int number = in.nextInt();
            for (int i=0;i<number;i++){
                for (int j=0;j<number;j++){
                    if (i==j ||i+j==number-1){
                        System.out.print("*");
                    }else {
                        System.out.print(" ");
                    }
                }
                System.out.printf("\n");
            }
        }
    }
}
